.\"   $Id: satisfybddnode.3,v 1.1 2002/03/18 11:26:51 ludo Exp $
.\" @(#)satisfybddnode.2 2.7 96/07/02 ; Labo masi cao-vlsi; Author : Jacomme Ludovic
.TH SATISFYBDDNODE 3 "October 1, 1997" "ASIM/LIP6" "BDD FUNCTIONS"
.SH NAME
satisfybddnode \- finds a satisfying path for a \fBbdd\fP node.
.so man1/alc_origin.1
.SH SYNOPSIS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "bdd101.h"
bddnode \(**satisfybddnode( BddSystem, BddNode )
  bddsystem \(**BddSystem;
  bddnode   \(**BddNode;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIBddSystem
The \fBbdd\fP system.
.TP
\fIBddNode\fP
The \fBbdd\fP node.
.SH DESCRIPTION
\fBsatisfybddnode\fP finds a simple path throw the \fBbdd\fP \fIBddNode\fP
that reaches the constant \fBbdd\fP node one, in the \fBbdd\fP system \fIBddSystem\fP.
If a null pointer is given, the default \fBbdd\fP system is used.
.br
.SH RETURN VALUE
\fBsatisfybddnode\fP returns a \fBbdd\fP node that satisfies \fIBddNode\fP.
.SH ERRORS
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"index xxx out of range, error !"
.ft R
.RS
The \fIBddNode\fP parameter must be different from the \fBbdd\fP node zero.
.RE
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "bdd101.h"
   bddsystem  \(**BddSystem;
   bddcircuit \(**BddCircuit;
   bddnode    \(**BddNode;
   chain_list \(**Expr;
   BddSystem  = createbddsystem( 100, 1000, 100, 50000 );
   BddCircuit = createbddcircuit( "hello_world", 10, 10, BddSystem );
   Expr = createablbinexpr( ABL_OR,
                            createablatom( "i0" ),
                            createablatom( "i1" ) );
   BddNode = addbddcircuitabl( BddCircuit, Expr );
   freeablexpr( Expr );
   BddNode = satisfybddnode( (bddsystem \(**)0, BddNode );
   Expr = convertbddcircuitabl( BddCircuit, BddNode );
   /* displays  i0 */
   viewablexpr( Expr, ABL_VIEW_VHDL );
   freeablexpr( Expr );
   destroybddsystem( (bddsystem \(**)0 );
   destroybddcircuit( (bddcircuit \(**)0 );
.ft R
.fi
.SH SEE ALSO
.BR bdd (1)


.so man1/alc_bug_report.1

